package com.open.system.service;

import com.open.base.model.User;
import com.open.common.model.Page;
import java.util.List;

/**
 * 用户信息
 *
 * @author 大树03
 * @date 2025-02-01 22:47
 */
public interface IUserService{

    /**
     * 添加对象
     * @param model
     * @return boolean
     * @
     * @date 2025-02-01 22:47
     */
    Boolean save(User model) ;

    /**
     * 修改对象
     * @param model
     * @return boolean
     * @
     * @date 2025-02-01 22:47
     */
    Boolean update(User model) ;

    /***
     * 根据主键查询
     *
     * @param pk 主键
     * @return User
     * @
     */
    User findByPk(Long pk) ;

    /**
     * 根据条件查询记录数
     *
     * @param item
     * @return Integer
     * @
     */
    Integer countByModel(User item) ;

    /**
     * 分页查询
     *
     * @param page
     * @param model
     * @return
     * @
     */
    Page<User> findPage(Page<User> page, User model);

    /**
     * 根据条件查询
     *
     * @param model
     * @return
     * @
     */
    List<User> findByModel(User model);

    /**
     * 根据主键删除
     *
     * @param pks
     * @return boolean
     * @
     */
    Boolean remove(List<Long> pks) ;

    /**
     * 批量查询用户名是否存在
     *
     * @param usernames 用户名列表
     * @return 已存在的用户名列表
     */
    List<String> findExistingUsernames(List<String> usernames);

    Boolean batchSave(List<User> lists);
}